using System;
using System.ComponentModel.DataAnnotations;

namespace OutpatientApi.DTO
{
    /// <summary>
    /// 医疗卡办理新增DTO
    /// </summary>
    public class AddMedicalCardRegistrationDto
    {
        /// <summary>
        /// 用户姓名 - 必填，最大长度50位
        /// </summary>
        [Required(ErrorMessage = "用户姓名不能为空")]
        [StringLength(50, ErrorMessage = "用户姓名最大长度为50位")]
        public string Name { get; set; } = string.Empty;

        /// <summary>
        /// 性别 - true=男，false=女
        /// </summary>
        public bool Gender { get; set; }

        /// <summary>
        /// 年龄
        /// </summary>
        public int Age { get; set; }

        /// <summary>
        /// 详细住址 - 最大长度200位
        /// </summary>
        [StringLength(200, ErrorMessage = "详细住址最大长度为200位")]
        public string Address { get; set; } = string.Empty;

        /// <summary>
        /// 联系电话 - 最大长度20位
        /// </summary>
        [StringLength(20, ErrorMessage = "联系电话最大长度为20位")]
        public string Phone { get; set; } = string.Empty;

        /// <summary>
        /// 民族外键 - 关联Ethnic_group表
        /// </summary>
        public int Ethnicity { get; set; }

        /// <summary>
        /// 文化程度外键 - 关联Culture表
        /// </summary>
        public int EducationLevel { get; set; }

        /// <summary>
        /// 职业外键 - 关联Occupation表
        /// </summary>
        public int OccupationId { get; set; }

        /// <summary>
        /// 邮政编码 - 最大长度10位
        /// </summary>
        [StringLength(10, ErrorMessage = "邮政编码最大长度为10位")]
        public string PostalCode { get; set; } = string.Empty;

        /// <summary>
        /// 婚姻状况 - true=已婚，false=未婚
        /// </summary>
        public bool MaritalStatus { get; set; }

        /// <summary>
        /// 出生日期
        /// </summary>
        public DateTime DateOfBirth { get; set; }

        /// <summary>
        /// 身份证号码 - 最大长度18位
        /// </summary>
        [StringLength(18, ErrorMessage = "身份证号码最大长度为18位")]
        public string IDNumber { get; set; } = string.Empty;
    }
} 